Geonodes Part 2
УРОВЕНЬ 1: ОСНОВЫ РАБОТЫ С НОДАМИ
Введение в Уровень 1
Цель уровня: Освоить интерфейс Geometry Nodes, понять основные операции с геометрией, научиться работать с точками и инстансами, начать создавать свои первые процедурные модели.
Требования: Уровень 0 полностью пройден, базовое понимание Blender UI
Время обучения: 3-4 недели при регулярной практике (3-5 часов в день)
Ожидаемый результат: Вы сможете создавать простые процедурные модели, рассеивать объекты, работать с базовыми трансформациями
МОДУЛЬ 1.1: ИНТЕРФЕЙС И БАЗОВЫЕ ОПЕРАЦИИ
Концепция: Geometry Node Tree как Data Pipeline
Geometry Nodes работают как конвейер обработки данных:
GROUP INPUT (параметры и исходная геометрия)
↓
NODE 1 (трансформирует данные)
↓
NODE 2 (дальше трансформирует)
↓
NODE N (финальная обработка)
↓
GROUP OUTPUT (результат)
Важно: Данные поступают и обрабатываются в строгом порядке, слева направо, создавая final geometry.
Ключевые ноды
Group Input / Group Output
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/input_output/group_input.html
Назначение:
- Group Input — получить параметры и исходную геометрию объекта
- Group Output — вывести финальную геометрию, которая будет отображена
Понимание:
Каждый Geometry Node tree имеет обязательно эти две ноды. Они определяют начало и конец pipeline.
Важные сокеты в Group Input:
- Geometry (белый) — исходная геометрия объекта
- Все остальные сокеты — параметры (создаются вами)
Пример базовой структуры:
Group Input (Geometry)
↓
Set Position (deform geometry)
↓
Group Output (Geometry)
Join Geometry
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/join_geometry.html
Назначение: Объединить несколько геометрий в одну
Входы:
- Geometry (множественные входы!) — несколько геометрий
Как использовать:
- Shift+A → Geometry → Join Geometry
- Подключите несколько выходов геометрии к сокетам Join Geometry
- Join Geometry автоматически создаст новые входы при подключении
Пример:
Geometry Input → Join Geometry
↑ ↓
Distribute Points + Instance on Points → Group Output
Realize Instances
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/instances/realize_instances.html
Назначение: Конвертировать инстансы в реальную геометрию
Когда нужен:
- Перед экспортом (если нужна реальная геометрия, а не инстансы)
- Перед применением модификатора в Blender (если объекты исчезают)
- Когда другие приложения не поддерживают инстансы
ВАЖНО: Инстансы очень быстро рендерятся, реальная геометрия — медленнее!
Instance on Points
↓
Realize Instances (only if needed!)
↓
Group Output
Geometry to Instance
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/instances/geometry_to_instance.html
Назначение: Конвертировать геометрию в инстанс (оптимизация)
Когда использовать:
- Сложная геометрия которую нужно повторить много раз
- Оптимизация производительности
- Подготовка к scatter операциям
Лучшие туториалы (УРОВЕНЬ 1.1)
Официальные источники
-
Simon Thommes - Geometry Nodes from Scratch - Blender Studio
- Сводка: Официальный курс разработчика GN. Первые 2 часа посвящены интерфейсу и базовым операциям. Профессиональное объяснение с примерами.
- Версия: Актуально для 3.0+
- Изучите: UI, node tree, Group Input/Output, базовые операции
- Проекты: Простые примеры для понимания
-
Blender Manual - Geometry Nodes Index
- Сводка: Официальная документация Blender. Полное описание всех нод и концепций.
- Важность: ВЫСОКАЯ — используйте как справочник
YouTube туториалы
-
Erindale - Navigating the Geometry Nodes UI
- Сводка: Профессионал показывает интерфейс и workflow. Быстрое введение за 20 минут.
- Длительность: ~20 минут
- Уровень: Новичок
- Изучите: Все горячие клавиши, быструю навигацию
-
Bradley Animation - Getting Started
- Сводка: Johnny Matthews объясняет базовые операции. Часть большого курса.
- Длительность: ~30 минут (первый видеоролик серии)
- Уровень: Новичок-Начинающий
- Проекты: Простые примеры
-
CG Cookie - ASSEMBLE Course Introduction
- Сводка: Профессиональный курс с фокусом на практику. Первая часть бесплатна.
- Длительность: 4+ часа полный курс
- Уровень: Начинающий-Средний
- Стоимость: Платный (но первые уроки бесплатны)
-
Blender Guru - Procedural Fundamentals
- Сводка: Andrew Price объясняет базовые концепции procedural thinking. Фундаментально важно.
- Длительность: ~30 минут
- Уровень: Новичок
- Рекомендация: Смотрите несколько видео этого автора
-
Default Cube - Geometry Nodes Basics
- Сводка: Базовое введение для совсем новичков. Легко понять.
- Длительность: ~15 минут
- Уровень: Новичок
-
I Wish I Knew This Before Using Geometry Nodes
- Сводка: Опытный пользователь делится 10 советами которые сэкономят вам месяцы обучения.
- Длительность: ~20 минут
- Уровень: Все уровни (полезные даже для профессионалов)
- Важность: ОЧЕНЬ ВЫСОКАЯ
Письменные руководства
-
Blender Glossary - Common Problems and Solutions
- Сводка: Подробное руководство по распространённым проблемам.
- Формат: Статья с примерами
- Полезность: Высокая
-
DevFlowStack - Geometry Nodes Setup
- Сводка: Техническое руководство по применению модификаторов.
- Форма: Текстовое руководство
- Уровень: Начинающий-Средний
Распространённые проблемы и решения
Проблема 1: "Объекты исчезают при Apply modifier"
Почему происходит:
Geometry Nodes часто выводят инстансы, а не реальную геометрию. Инстансы — это ссылки на другие объекты, а не реальная полигональная сетка. Когда вы применяете модификатор, инстансы теряются.
Решение:
-
Способ 1 (быстрый): Добавьте Realize Instances перед Group Output
Instance on Points ↓ Realize Instances ↓ Group Output -
Способ 2: После применения модификатора используйте
Ctrl+Shift+A→ Make Instances Real -
Способ 3: Если инстансы нужны, оставьте их — они рендерятся быстрее!
Проблема 2: "Join Geometry не находится"
Почему происходит:
Новички ищут через правый клик на canvas, а эта нода не в том меню.
Решение:
- Нажмите
Shift+A(добавить ноду) - Выберите Geometry категорию
- Найдите Join Geometry
Или проще: выберите провод Geometry и начните писать "join" — Blender покажет нужную ноду.
Проблема 3: "Node order issues — неправильный порядок нод"
Почему происходит:
Geometry Node tree имеет определённый порядок обработки. Если ноды подключены неправильно, можно получить неожиданный результат или ошибку.
Решение:
- Проследите зелёный провод (Geometry) — это главный поток данных
- Убедитесь что Group Output подключена в конце
- Логически думайте: "Что я хочу сделать первым? Что вторым?"
Пример правильного порядка:
Geometry Input
↓ (исходная геометрия)
Distribute Points (создаёт облако точек)
↓ (облако точек)
Instance on Points (помещает объект на каждую точку)
↓ (инстансы)
Realize Instances (делает реальную геометрию)
↓
Join Geometry с исходной геометрией
↓
Group Output
Проблема 4: "Group Input не появляется в modifier panel"
Почему происходит:
Параметры Group Input не видны в Properties потому что:
- Не все сокеты Group Input подключены
- Сокеты имеют неправильный тип
- Параметр имеет невидимое имя
Решение:
- Подключите сокет Group Input к ноде
- Убедитесь что сокет имеет правильный тип (сравните с документацией)
- Shift+L или drag сокета на Group Input для создания видимого параметра
- Переименуйте параметр (правый клик на сокет → Rename Socket)
Лайфхаки от профессионалов для УХ1
Организация Node Tree
-
Ctrl+J — автоматически создать Frame (рамку) вокруг выбранных нод
- Используйте для группировки логически связанных нод
- Улучшает читаемость сложных деревьев
- Названия frames помогают ориентироваться
-
Node Wrangler addon — встроенный инструмент
- Уже установлен в Blender
Ctrl+Shift+F— Noodle (line) to FrameCtrl+Shift+D— Duplicate from SelectedCtrl+Shift+C— Copy from Selected
-
Viewer Node shortcuts
Ctrl+Shift+Clickна сокет — создать Viewer node для этого сокетаCtrl+1,Ctrl+2и т.д. — переключение между разными Viewer nodes- Идеально для быстрой отладки
-
Reroute nodes (Shift+R)
- Использование для организации "спагетти" проводов
- Значительно улучшает читаемость
- Можно добавлять комментарии
Работа с параметрами
-
Создание параметров через Shift+L
- Выделите сокет
- Нажмите Shift+L
- Параметр автоматически появится в Group Input и в modifier panel
-
Быстрое переименование
- Правый клик на сокет → Rename Socket
- Хорошие имена экономят время при работе с модификатором
-
Значения по умолчанию
- Используйте Value nodes перед подключением к Group Input
- Устанавливает default значение параметра
Оптимизация производительности
-
Preview vs Render mode
- Отключайте на время разработки (глаз в модификаторе)
- Значительно ускоряет работу на сложных node trees
- Включайте только для финального просмотра
-
Выделение критических ошибок
- Красное выделение на сокетах = ошибка типа данных
- Жёлтое предупреждение = потенциальная проблема
- Всегда проверяйте эти символы!
-
Использование Comments
Shift+A→ Annotation (не нода, а комментарий)- Пишите пояснения прямо в node tree
- Помогает вам и вашим коллегам
МОДУЛЬ 1.2: РАБОТА С ГЕОМЕТРИЕЙ — MESH OPERATIONS
Концепция: Трансформация как Basis всего
В Geometry Nodes практически всё сводится к трансформации геометрии. Основные операции:
- Positional transformation — изменение координат (Set Position)
- Topological transformation — изменение структуры (Subdivide, Extrude)
- Boolean operations — логические операции (Union, Difference, Intersect)
- Attribute manipulation — работа с данными (colors, weights, etc.)
Ключевые ноды (УРОВЕНЬ 1.2)
Set Position — Основная нода для деформации
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/set_position.html
Назначение: Переместить вершины в новые позиции
Входы:
- Geometry — исходная геометрия
- Position — новые абсолютные координаты (X, Y, Z)
- Offset — добавочное смещение к текущей позиции
- Selection — (опционально) выбор каких вершин менять
Разница между Position и Offset:
| Параметр | Действие | Пример |
|---|---|---|
| Position | Устанавливает абсолютные координаты | Position = (0, 0, 5) → все вершины на высоте Z=5 |
| Offset | Добавляет смещение к текущей позиции | Offset = (0, 0, 1) → поднять на 1 единицу выше |
Самый частый паттерн (95% случаев):
Position node (текущая позиция)
↓
Vector Math Operation (добавить, масштабировать, и т.д.)
↓
Set Position Offset (применить смещение)
Примеры:
Пример 1: Простое поднятие на фиксированное значение
Set Position
→ Offset: (0, 0, 5)
Пример 2: Волна (используя синус)
Position node
↓
Math (Sine) с масштабированием по X
↓
Multiply (масштаб амплитуды)
↓
Set Position Offset
Transform Geometry — Глобальная трансформация
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/transform_geometry.html
Назначение: Перемещение, поворот, масштабирование всей геометрии
Входы:
- Translate (Движение) — вектор смещения
- Rotate — ось и угол вращения
- Scale — масштаб
Когда использовать:
- Перемещение инстансов
- Масштабирование результата
- Вращение конечного результата
Extrude Mesh — Выдавливание граней
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/extrude_mesh.html
Назначение: Выдавить грани наружу, создавая объём
Входы:
- Selection — какие грани выдавливать (Boolean)
- Offset — расстояние выдавливания
Примеры:
- Создание ячеистых структур
- Создание шипов на поверхности
- Создание объёма из плоского меша
Subdivide Mesh — Подразделение
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/subdivide_mesh.html
Назначение: Добавить новые вершины в mesh (увеличить детальность)
Входы:
- Number Cuts — сколько раз разделить каждое ребро
Примеры:
- Подготовка к деформации (для плавного изгиба нужны вершины)
- Увеличение деталей для анимации
- Создание более мягкого mesh
Mesh Boolean — Булевы операции
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/mesh_boolean.html
Назначение: Логические операции между двумя mesh (объединение, вычитание, пересечение)
Режимы:
- Union — объединить (сумма)
- Difference — вычесть (A - B)
- Intersect — пересечение (только общая часть)
Входы:
- Mesh A, Mesh B — две геометрии для операции
- Solver: Float (быстро, но может быть неточно) vs Exact (медленнее, точнее)
- Self Intersection: включить для сложных случаев
Частые проблемы:
- Boolean не работает = часто из-за неправильной топологии
- Решение = используйте Exact solver, включите Self Intersection
- Нормали неправильные = пересчитайте нормали или используйте опции в Boolean
Официальная документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/modify/mesh_boolean.html
Лучшие туториалы (УРОВЕНЬ 1.2)
Про Set Position
-
Set Position Control Each Point - YouTube
- Сводка: Детальное 20-минутное объяснение Set Position с примерами
- Длительность: ~20 минут
- Уровень: Новичок
- Изучите: Основные паттерны использования
-
Set Position from Scratch - YouTube
- Сводка: Пошаговое введение, очень медленно (хорошо для новичков)
- Длительность: ~30 минут
- Уровень: Совсем новичок
-
Blender Manual - Set Position Node
- Сводка: Официальная документация с примерами
- Формат: Текст + иллюстрации
- Рекомендация: Используйте как справочник
Про Boolean операции
-
How to Use Mesh Booleans - Artistic Render
- Сводка: Подробное руководство по Boolean с примерами
- Длительность: Статья (читается ~15 минут)
- Полезность: ВЫСОКАЯ для практики
-
Boolean 100x Faster Trick - YouTube
- Сводка: Техника оптимизации Boolean для быстрой работы
- Длительность: ~5 минут
- Уровень: Средний
- Важность: Высокая для production
Про Mesh операции в целом
-
Simon Thommes - Working with Geometry - Blender Studio
- Сводка: Профессиональный разбор mesh операций
- Длительность: ~1.5 часа
- Уровень: Начинающий-Средний
- Важность: ОЧЕНЬ ВЫСОКАЯ
-
Bradley Animation - Transform Basics - YouTube
- Сводка: Основы трансформации в Geometry Nodes
- Длительность: ~25 минут
- Уровень: Новичок
Распространённые проблемы (УРОВЕНЬ 1.2)
Проблема 1: "Set Position не делает ничего"
Причина:
Путаница между Position (абсолютное положение) и Offset (смещение).
Решение:
Правильно: Set Position с Offset для смещения
Position node → Vector Math (Add с offset) → Set Position Offset
Неправильно: Set Position с Position = 0
(это поместит все вершины в начало координат!)
Проблема 2: "Boolean создаёт артефакты или не работает"
Причина:
- Самопересечение геометрии
- Non-manifold топология
- Неправильный режим solver
Решение:
- Включите Self Intersection опцию
- Используйте Exact solver вместо Float
- Перед Boolean применяйте Merge by Distance для очистки
- Убедитесь что оба mesh имеют правильные нормали (Ctrl+N recalculate)
Проблема 3: "Нормали (освещение) неправильные после операций"
Причина:
Geometry Nodes не пересчитывает нормали автоматически после трансформации.
Решение:
Добавьте в конец node tree:
Group Output Geometry
↑
Set Shade Smooth (если нужны smooth нормали)
Или используйте опции внутри Boolean узла для управления нормалями.
Практический проект P1.2: "Волнистая поверхность"
Сложность: Начинающий
Время: 30-45 минут
Используемые ноды: Position, Math (Sine), Set Position
Описание:
Создание простой деформирующейся поверхности с волновым эффектом.
Шаги:
- Создайте большую плоскость (Shift+A → Mesh → Plane, масштабируйте)
- Добавьте Subdivision Surface modifier для деталей (2-3 уровня)
- Добавьте Geometry Nodes modifier
- В node tree:
- Position node → получить текущие координаты
- Math (Sine) → вычислить синус от координаты Y
- Scale (результат, например на 2) → амплитуда волны
- Set Position (Offset) → применить Z смещение на основе синуса
Результат: Красивая волнистая поверхность!
(Продолжение с Модулем 1.3 и далее - курс очень большой)
МОДУЛЬ 1.3: РАБОТА С ТОЧКАМИ И ИНСТАНСАМИ
Концепция: "Scatter на стероидах"
Это основная техника для рассеивания объектов. Концептуально очень простая:
Шаг 1: Возьмите поверхность
↓ Distribute Points on Faces
Шаг 2: Облако точек на поверхности
↓ Instance on Points
Шаг 3: На каждой точке копия объекта
↓ (опционально) Realize Instances
Шаг 4: Реальная геометрия инстансов
Ключевые ноды
Distribute Points on Faces — Главная нода для scatter
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/point/distribute_points_on_faces.html
Назначение: Создать облако точек на поверхности mesh
Входы:
- Mesh — входная сетка
- Selection — выбор каких граней использовать (Boolean)
- Density (для Random и Poisson режимов) — количество точек на единицу площади
- Seed — рандомизировать расположение
Выходы:
- Points — облако точек (Point Cloud)
- Rotation — автоматическая ротация для каждой точки (по нормали)
- Stable ID — уникальный ID каждой точки (для консистентной рандомизации)
Режимы (выбор важен!):
| Режим | Скорость | Качество | Когда использовать |
|---|---|---|---|
| Random | Очень быстро | Может пересекаться | Быстрый прототип, много точек |
| Poisson Disk | Медленнее | Красивое равномерное распределение | Финальный результат, природные распределения |
| Fixed | Средне | Точное количество и позиции | Когда нужна сетка точек |
Пример базового рассеивания:
Geometry Input
↓
Distribute Points on Faces (Poisson Disk, density = 5)
↓
Random Value (для rotation)
↓
Instance on Points (с вашим объектом)
↓
Group Output
Instance on Points — Создание инстансов
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/instances/instance_on_points.html
Назначение: На каждую точку поместить копию объекта
Входы:
- Points — облако точек
- Instance — какой объект инстансировать
- Rotation — ротация каждой копии
- Scale — масштаб каждой копии
- Pick Instance — выбор случайного инстанса из Collection
Ключевое отличие от Geometry to Instance:
- Geometry to Instance = делает из одного объекта инстанс
- Instance on Points = берёт готовый инстанс и копирует его на каждую точку
Пример с рандомизацией:
Instance on Points:
→ Rotation: Random Value (0 до 360 в Z оси)
→ Scale: Random Value (0.8 до 1.2) для вариаций размера
Лучшие туториалы (УРОВЕНЬ 1.3)
-
How to Scatter Objects - Artistic Render
- Сводка: Полное руководство по scatter системе
- Длительность: Статья (~30 минут чтения)
- Содержит: Все основные техники
-
Distributing Exact Numbers - YouTube
- Сводка: Как контролировать точное количество точек
- Длительность: ~10 минут
- Уровень: Начинающий
-
Instance Objects - Usama Babar
- Сводка: Использование grid distribution
- Формат: Письменное руководство
Практический проект P1.3: "Лес миниатюрных деревьев"
Сложность: Начинающий-Средний
Время: 1-2 часа
Используемые ноды: Distribute Points, Random Value, Instance on Points, Join Geometry
Описание:
Процедурный лес с разными типами деревьев, рандомными высотами и ориентациями.
Что вы изучите:
- Основное рассеивание точек
- Рандомизация параметров
- Работа с Collection для разных объектов
- Join Geometry для объединения
МОДУЛЬ 1.4: CURVES — РАБОТА С КРИВЫМИ
Концепция: Кривые как параметрическая геометрия
Кривые в Blender — это параметрическая геометрия, определяемая контрольными точками и касательными (handles).
Зачем нужны кривые в Geometry Nodes?
- Создание путей и маршрутов
- Деформация по кривой
- Создание трубок и дорог
- Базис для сложных структур
Ключевые ноды
Curve Primitives — Создание базовых кривых
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/curve_primitives.html
Доступные примитивы:
- Line — прямая линия
- Circle — круг
- Arc — дуга
- Spiral — спираль
- Quadrilateral — четырёхугольник
- Bezier Segment — сегмент Безье
Пример: Создание спирали
Curve Spiral (radius = 5, height = 10, resolution = 32)
↓
Curve to Mesh (с Profile Circle)
↓
Group Output (получился винт!)
Curve to Mesh — Конвертирование кривой в меш
Документация: https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/operations/curve_to_mesh.html
Назначение: Создать 3D геометрию из кривой
Входы:
- Curve — входная кривая
- Profile Curve — форма поперечного сечения
- Fill Caps — закрыть ли концы
Как это работает:
Curve Line (путь)
+
Profile Curve Circle (сечение)
↓
Curve to Mesh
↓
Результат: цилиндр вдоль пути!
Примеры:
- Дороги (выкладка вдоль спирали)
- Трубы и шланги
- Волосы и растительность
- Верёвки и кабели
Лучшие туториалы (УРОВЕНЬ 1.4)
-
Curves for Beginners - YouTube
- Сводка: Полное введение в кривые в GN
- Длительность: ~25 минут
- Уровень: Новичок
-
Your Guide to Curves in GeoNodes - YouTube
- Сводка: Полный guide со множеством примеров
- Длительность: ~40 минут
- Уровень: Начинающий-Средний
- Рекомендация: ОЧЕНЬ ПОЛЕЗНО
-
Instances on Curves - Nathan's 3D Factory
- Сводка: Как размещать объекты вдоль кривых
- Длительность: ~20 минут
- Уровень: Средний
Практический проект P1.4: "Спиральная башня"
Сложность: Средний
Время: 1-1.5 часа
Используемые ноды: Curve Spiral, Instance on Points, Curve to Points
Описание:
Создание винтовой башни с помещением кубов или других объектов на каждый виток спирали.
ПРАКТИЧЕСКИЙ ПРОЕКТ УРОВНЯ 1
🌸 ПРОЕКТ R.1: "Процедурный лес"
Сложность: Beginner-Intermediate
Время: 3-4 часа
Навыки: Distribute Points, Instance on Points, Random Value, Collection Info, Join Geometry
Описание:
Создание красивого процедурного леса с разными типами деревьев, естественным распределением и красивой композицией.
Что вы изучите:
- Scatter системы
- Работа с Collection для разнообразия
- Рандомизация параметров
- Оптимизация через инстансы
- Композиция и распределение
Лучшие туториалы:
- Forest Creation - Bradley Animation — полный разбор
- Procedural Trees - Entagma — профессиональные техники
- Scatter Forest System - YouTube — быстрая версия
Результат: Полностью процедурный лес который можно параметризировать и изменять!
Навигация
Авторы
- Volumorph - @volumorph
- David "Dr. Strange" Ayrapetian - @david_ayrapetiann
- Maxim "Dr. Artist" Zhuravlev - @WhiteCatWeb
- Manachrome Factory - @Manachrome_Factory
- Artyom "Биполярыч" Sidorov - @artyomsidorov25
- Pepsied "Cola" - @pepsiedina
- Fabien - @fabien_sokal
- Ekatherina Litvinova - @Ekatherina_Litvinova